<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .a {
            width: 100px;
            height: 100px;
            background-color: #000;
            position: absolute;
        }
    </style>
</head>

<body>

    <div class="a"></div>


    <script>

        // 拖拽
        //   鼠标按下   onmousedown
        //   鼠标移动   onmousemove
        //   鼠标抬起   onmouseup

        //   事件给谁绑定

        var oDiv = document.querySelector('.a');

        // 鼠标按下 在盒子中按下
        oDiv.onmousedown = function (e) {
            // 在鼠标按下的时候，需要找到鼠标的位置
            e = e || event;
            console.log(e.offsetX);
            var gapX = e.offsetX;
            var gapY = e.offsetY;

            // 鼠标按下之后再移动
            document.onmousemove = function (e) {
                e = e || event;
                var x = e.x - gapX;
                var y = e.y - gapY;
                oDiv.style.cssText = `left:${x}px;top:${y}px;`;

                // 鼠标抬起的时候，清除鼠标跟随
                document.onmouseup = function () {
                    // 
                    // console.log(666);
                    document.onmousemove = null;
                    // 清除自己的事件
                    document.onmouseup = null;   // 不是必须的，优化
                }
            }
        }











    </script>

</body>

</html>